\documentclass{article}

%%%%%%%%%%%%%%%%%% Page Title Here
\newcommand{\TheTitle}{Use Cases}
\input{header.tex}

\begin{document} %%%%%%%%%%%%%%%%%%%%%%%%%%%%% Actual Paper Here

For the reliable and efficient management and transportation of
various materials, several distinct uses of the software and hardware
must be considered.  These uses can generally fall into four
categories: adding specimens to the tracking system, collecting or
dropping off of transported specimen, accessing the incoming package
data by the lab, and assessing or modifying the administrative data
regarding clients and couriers.  The following scenarios are major use
cases of our system along with a few problems that could be
encountered but also solvable by users.

\begin{itemize*}
\item \textbf{\large Entering material to be tracked into the system}
  \begin{itemize*}
  \item \textbf{Actors}
    \begin{itemize*}
    \item A local client wanting to transport and track a package to the lab
    \end{itemize*}
  \item \textbf{Preconditions}
    \begin{itemize*}
    \item Package is not already entered into the system
    \end{itemize*}
  \item \textbf{Minimal success guarantees}
    \begin{itemize*}
    \item Package is registered in the system with:
      \begin{itemize*}
      \item an associated list of special properties handlers need to
        be aware of (time-critical, needs to be frozen)
      \item a description
      \item a list of enclosed items
      \end{itemize*}
    \end{itemize*}
  \item \textbf{List of steps to success scenario}
    \begin{enumerate*}
    \item Sender labels the package with a provided/printed barcode
    \item Sender enters package information and transportation
      destination into the web client
    \item Sender places the labeled package in the correct storage
      container to await collection and transit
    \end{enumerate*}
  \item \textbf{Possible failures and suggested solutions}
    \begin{itemize*}
    \item \textbf{Failure:} User enters a duplicate barcode
    \item \textbf{Solution:} System notifies user through web UI and
      they use a different printed barcode to repost the package. 
    \end{itemize*}
  \end{itemize*}
\item \textbf{\large Driver arriving at a collection location}
  \begin{itemize*}
  \item \textbf{Actors}
    \begin{itemize*}
    \item Driver at a pickup route for the lab
    \end{itemize*}
  \item \textbf{Preconditions}
    \begin{itemize*}
    \item All packages to be transported have been entered into the
      system and placed at the proper location by the time the driver
      arrives at the destination
    \end{itemize*}
  \item \textbf{Minimal success guarantees}
    \begin{itemize*}
    \item Package data is updated to show the driver has collected the
      package
    \item All packages at location are properly loaded onto the
      vehicle
    \end{itemize*}
  \item \textbf{List of steps to success scenario}
    \begin{enumerate*}
    \item Driver checks in to the destination using the mobile app
    \item Driver recieves a checklist of tasks that need to be completed before package pickup
    \item After completing the checklist, one step at a time, the
      driver is given a similar checklist for a specific pickup
      location within the client site
    \item Driver receives a list on the mobile client of all packages
      at the pickup location
    \item Driver locates all packages to be collected and scans the
      barcode for each package using the mobile client
    \item Driver loads each package taking care to follow any special
      steps outlined for the package on the mobile client
    \item Steps 3-6 are repeated for every pickup location within a
      client site
    \item Driver checks out of the location using the mobile client
    \end{enumerate*}
  \item \textbf{Possible failures and suggested solutions}
    \begin{itemize*}
    \item \textbf{Failure:} Driver forgets to check in to a location
    \item \textbf{Solution:} If a driver attempts to mark a package as
      delivered or collected without checking in to the correct
      location the mobile client will delay until the driver has
      checked in or has manually overridden the warning
    \item \textbf{Failure:} Driver forgets to check out of a location
    \item \textbf{Solution:} If a driver attempts to check in to
      another location before checking out of a location or attempts
      to deliver/collect a package to/from the wrong location the
      mobile client will delay until the driver corrects the mistake
      or manually overrides the warning
    \item \textbf{Failure:} Driver finds that a package contents list
      doesn't match with the actual package.
    \item \textbf{Solution:} Driver should then notify the
      hospital/lab of the mistake, leaving it up to them whether or
      not to continue with their preassignment route.
    \item \textbf{Failure:} Driver cannot scan the barcode of the package
    \item \textbf{Solution:} Driver may optionally enter the barcode
      manually from the printed alphanumeric code on it
    \end{itemize*}
  \end{itemize*}
\item \textbf{\large Driver arriving at a delivery location}
  \begin{itemize*}
  \item \textbf{Actors}
    \begin{itemize*}
    \item Driver
    \item Lab worker that receives packages as they arrive
    \end{itemize*}
  \item \textbf{Preconditions}
    \begin{itemize*}
    \item The driver has reached the correct destination for their
      carried packages
    \end{itemize*}
  \item \textbf{Minimal success guarantees}
    \begin{itemize*}
    \item Package data is updated to show that the driver has
      delivered the packages
    \item Package is properly unloaded from the vehicle
    \item Recipient knows that the packages have arrived by checking
      the updated website information
    \end{itemize*}
  \item \textbf{List of steps to success scenario}
    \begin{enumerate*}
    \item Driver locates all packages to be unloaded and the lab
      worker scans the barcode for each package using the website
      scanner as it is unloaded
    \item Driver checks out of the transport location using the mobile
      client and completes the final checklist screen, one step at a time
    \end{enumerate*}
  \item \textbf{Possible failures and suggested solutions}
    \begin{itemize*}
    \item \textbf{Failure:} Lab worker finds that the system states
      the driver picked up a package that hasn't been unloaded
    \item \textbf{Solution:} Driver rechecks van and then proceeds to
      contact client to try and find package.  If necessary, package
      will be reentered into system for another driver to pick it up
      later.  Current package listing is marked completed.
    \end{itemize*}
  \end{itemize*}
\item \textbf{\large Lab wanting to know the predicted volume of
    deliveries for given time}
  \begin{itemize*}
  \item \textbf{Actors}
    \begin{itemize*}
    \item Lab worker
    \end{itemize*}
  \item \textbf{Preconditions}
    \begin{itemize*}
    \item User has an account with proper privileges
    \end{itemize*}
  \item \textbf{Minimal success guarantees}
    \begin{itemize*}
    \item Lab user is presented with useful data on incoming packages
    \end{itemize*}
  \item \textbf{List of steps to success scenario}
    \begin{enumerate*}
    \item User logs onto web client using a lab account with
      permissions to view data on incoming packages
    \item User is presented with statistics to the volume of packages
      arriving in the next few hours in text form and as a simple
      graph of ETA vs. package counts
    \item User can also view data on individual packages on the same
      page
    \item User may choose to filter package list by package
      properties, ETA, locations, etc.
      \begin{itemize*}
      \item User may also sort package list by the same properties
      \end{itemize*}
    \end{enumerate*}
  \item \textbf{Possible failures and suggested solutions}
    \begin{itemize*}
    \item \textbf{Failure:} Packages have a listed ETA of -1 minutes
    \item \textbf{Solution:} This states that package cannot currently
      have an associated ETA because a courier hasn't been assigned
      yet.  User may refresh the page after some time (possibly up to
      30 min) to see a new ETA once it has been recalculated.
    \end{itemize*}
  \end{itemize*}
\item \textbf{\large Administrator changes settings}
  \begin{itemize*}
  \item \textbf{Actors}
    \begin{itemize*}
    \item User of web client with administrative privileges
    \end{itemize*}
  \item \textbf{Preconditions}
    \begin{itemize*}
    \item User has an account with proper privileges
    \end{itemize*}
  \item \textbf{Minimal success guarantees}
    \begin{itemize*}
    \item Administrator has changed the settings
    \end{itemize*}
  \item \textbf{List of steps to success scenario}
    \begin{enumerate*}
    \item User goes to web client and types in credentials for an
      administrative account
    \item Administrator goes to the correct settings tab for what they
      want to change (i.e. starting/ending checklists, users, client
      sites, or routes)
    \item Administrator makes changes appropriate to each tab
      \begin{itemize*}
      \item This consists of the same interface as adding a shipment:
        filling out a few form fields and then submitting.
      \end{itemize*}
    \end{enumerate*}
  \end{itemize*}
\end{itemize*}

%%%%%%%%%%%%%%%%%%%%%%%%%%%%% End Paper Here
\end{document}

